package com.lineage.william;

import com.lineage.DatabaseFactory;
import com.lineage.Server;
import com.lineage.server.datatables.sql.CharItemsTable;
import com.lineage.server.model.Instance.L1ItemInstance;
import com.lineage.server.model.Instance.L1PcInstance;
import com.lineage.server.serverpackets.S_SystemMessage;
import com.lineage.server.serverpackets.ServerBasePacket;
import com.lineage.server.world.World;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Random;

public class New_BlessItem {
  private static ArrayList<ArrayList<Object>> aData = new ArrayList<>();
  
  private static boolean BUILD_DATA = false;
  
  private static Random _random = new Random();
  
  public static final String TOKEN = ",";
  
  public static void main(String[] a) {
    try {
      while (true)
        Server.main(null); 
    } catch (Exception exception) {
      return;
    } 
  }
  
  public static void forIntensifyArmor(L1PcInstance pc, L1ItemInstance item) {
    ArrayList<Object> aTempData = null;
    if (!BUILD_DATA) {
      BUILD_DATA = true;
      getData();
    } 
    int i = 0;
    while (i < aData.size()) {
      aTempData = aData.get(i);
      if (((Integer)aTempData.get(17)).intValue() == 2 && item.getItem().getType2() == 2 && (((
        (Integer)aTempData.get(0)).intValue() == 2 && item.getItem().getUseType() == 2) || ((
        (Integer)aTempData.get(0)).intValue() == 25 && item.getItem().getUseType() == 25) || ((
        (Integer)aTempData.get(0)).intValue() == 18 && item.getItem().getUseType() == 18) || ((
        (Integer)aTempData.get(0)).intValue() == 19 && item.getItem().getUseType() == 19) || ((
        (Integer)aTempData.get(0)).intValue() == 20 && item.getItem().getUseType() == 20) || ((
        (Integer)aTempData.get(0)).intValue() == 21 && item.getItem().getUseType() == 21) || ((
        (Integer)aTempData.get(0)).intValue() == 22 && item.getItem().getUseType() == 22) || ((
        (Integer)aTempData.get(0)).intValue() == 23 && item.getItem().getUseType() == 23) || ((
        (Integer)aTempData.get(0)).intValue() == 23 && item.getItem().getUseType() == 23) || ((
        (Integer)aTempData.get(0)).intValue() == 24 && item.getItem().getUseType() == 24) || ((
        (Integer)aTempData.get(0)).intValue() == 37 && item.getItem().getUseType() == 37) || ((
        (Integer)aTempData.get(0)).intValue() == 40 && item.getItem().getUseType() == 40))) {
        item.setItemAttack(item.getItemAttack() + ((Integer)aTempData.get(1)).intValue());
        item.setItemHit(item.getItemHit() + ((Integer)aTempData.get(2)).intValue());
        item.setItemSp(item.getItemSp() + ((Integer)aTempData.get(3)).intValue());
        item.setItemStr(item.getItemStr() + ((Integer)aTempData.get(4)).intValue());
        item.setItemDex(item.getItemDex() + ((Integer)aTempData.get(5)).intValue());
        item.setItemInt(item.getItemInt() + ((Integer)aTempData.get(6)).intValue());
        item.setItemCon(item.getItemCon() + ((Integer)aTempData.get(7)).intValue());
        item.setItemWis(item.getItemWis() + ((Integer)aTempData.get(8)).intValue());
        item.setItemCha(item.getItemCha() + ((Integer)aTempData.get(9)).intValue());
        item.setItemHp(item.getItemHp() + ((Integer)aTempData.get(10)).intValue());
        item.setItemMp(item.getItemMp() + ((Integer)aTempData.get(11)).intValue());
        item.setItemMr(item.getItemMr() + ((Integer)aTempData.get(12)).intValue());
        item.setItemReductionDmg(item.getItemReductionDmg() + ((Integer)aTempData.get(13)).intValue());
        item.setItemHpr(item.getItemHpr() + ((Integer)aTempData.get(14)).intValue());
        item.setItemMpr(item.getItemMpr() + ((Integer)aTempData.get(15)).intValue());
        item.setItemhppotion(item.getItemhppotion() + ((Integer)aTempData.get(16)).intValue());
        item.setItemAc(item.getItemAc() + ((Integer)aTempData.get(19)).intValue());
        if (!pc.isGm())
          World.get().broadcastPacketToAll((ServerBasePacket)new S_SystemMessage(
                String.format((String)aTempData.get(18), new Object[] { pc.getName(), item.getLogName() }))); 
        CharItemsTable cit = new CharItemsTable();
        try {
          cit.updateItemAttack(item);
          cit.updateItemHit(item);
          cit.updateItemAc(item);
          cit.updateItemSp(item);
          cit.updateItemStr(item);
          cit.updateItemDex(item);
          cit.updateItemInt(item);
          cit.updateItemCon(item);
          cit.updateItemWis(item);
          cit.updateItemCha(item);
          cit.updateItemHp(item);
          cit.updateItemMp(item);
          cit.updateItemMr(item);
          cit.updateItemReductionDmg(item);
          cit.updateItemHpr(item);
          cit.updateItemMpr(item);
          cit.updateItemhppotion(item);
          cit.updateBless(item);
        } catch (Exception e) {
          e.printStackTrace();
        } 
      } 
      i++;
    } 
  }
  
  public static void forIntensifyweapon(L1PcInstance pc, L1ItemInstance item) {
    ArrayList<Object> aTempData = null;
    if (!BUILD_DATA) {
      BUILD_DATA = true;
      getData();
    } 
    int i = 0;
    while (i < aData.size()) {
      aTempData = aData.get(i);
      if (((Integer)aTempData.get(17)).intValue() == 1 && item.getItem().getType2() == 1 && (((
        (Integer)aTempData.get(0)).intValue() == 1 && item.getItem().getType() == 1) || ((
        (Integer)aTempData.get(17)).intValue() == 1 && (
        (Integer)aTempData.get(0)).intValue() == 2 && item.getItem().getType() == 2) || ((
        (Integer)aTempData.get(0)).intValue() == 3 && item.getItem().getType() == 3) || ((
        (Integer)aTempData.get(0)).intValue() == 15 && item.getItem().getType() == 15) || ((
        (Integer)aTempData.get(0)).intValue() == 5 && item.getItem().getType() == 5) || ((
        (Integer)aTempData.get(0)).intValue() == 6 && item.getItem().getType() == 6) || ((
        (Integer)aTempData.get(0)).intValue() == 14 && item.getItem().getType() == 14) || ((
        (Integer)aTempData.get(0)).intValue() == 7 && item.getItem().getType() == 7) || ((
        (Integer)aTempData.get(0)).intValue() == 16 && item.getItem().getType() == 16) || ((
        (Integer)aTempData.get(0)).intValue() == 11 && item.getItem().getType() == 11) || ((
        (Integer)aTempData.get(0)).intValue() == 12 && item.getItem().getType() == 12) || ((
        (Integer)aTempData.get(0)).intValue() == 4 && item.getItem().getType() == 4) || ((
        (Integer)aTempData.get(0)).intValue() == 13 && item.getItem().getType() == 13) || ((
        (Integer)aTempData.get(0)).intValue() == 11 && item.getItem().getType() == 11) || ((
        (Integer)aTempData.get(0)).intValue() == 12 && item.getItem().getType() == 12) || ((
        (Integer)aTempData.get(0)).intValue() == 17 && item.getItem().getType() == 17) || ((
        (Integer)aTempData.get(17)).intValue() == 1 && (
        (Integer)aTempData.get(0)).intValue() == 18 && 
        item.getItem().getType() == 18))) {
        item.setItemAttack(item.getItemAttack() + ((Integer)aTempData.get(1)).intValue());
        item.setItemHit(item.getItemHit() + ((Integer)aTempData.get(2)).intValue());
        item.setItemSp(item.getItemSp() + ((Integer)aTempData.get(3)).intValue());
        item.setItemStr(item.getItemStr() + ((Integer)aTempData.get(4)).intValue());
        item.setItemDex(item.getItemDex() + ((Integer)aTempData.get(5)).intValue());
        item.setItemInt(item.getItemInt() + ((Integer)aTempData.get(6)).intValue());
        item.setItemCon(item.getItemCon() + ((Integer)aTempData.get(7)).intValue());
        item.setItemWis(item.getItemWis() + ((Integer)aTempData.get(8)).intValue());
        item.setItemCha(item.getItemCha() + ((Integer)aTempData.get(9)).intValue());
        item.setItemHp(item.getItemHp() + ((Integer)aTempData.get(10)).intValue());
        item.setItemMp(item.getItemMp() + ((Integer)aTempData.get(11)).intValue());
        item.setItemMr(item.getItemMr() + ((Integer)aTempData.get(12)).intValue());
        item.setItemReductionDmg(item.getItemReductionDmg() + ((Integer)aTempData.get(13)).intValue());
        item.setItemHpr(item.getItemHpr() + ((Integer)aTempData.get(14)).intValue());
        item.setItemMpr(item.getItemMpr() + ((Integer)aTempData.get(15)).intValue());
        item.setItemAc(item.getItemAc() + ((Integer)aTempData.get(19)).intValue());
        item.setItemhppotion(item.getItemhppotion() + ((Integer)aTempData.get(16)).intValue());
        if (!pc.isGm())
          World.get().broadcastPacketToAll((ServerBasePacket)new S_SystemMessage(
                String.format((String)aTempData.get(18), new Object[] { pc.getName(), item.getLogName() }))); 
        CharItemsTable cit = new CharItemsTable();
        try {
          cit.updateItemAttack(item);
          cit.updateItemHit(item);
          cit.updateItemSp(item);
          cit.updateItemStr(item);
          cit.updateItemDex(item);
          cit.updateItemInt(item);
          cit.updateItemCon(item);
          cit.updateItemAc(item);
          cit.updateItemWis(item);
          cit.updateItemCha(item);
          cit.updateItemHp(item);
          cit.updateItemMp(item);
          cit.updateItemMr(item);
          cit.updateItemReductionDmg(item);
          cit.updateItemHpr(item);
          cit.updateItemMpr(item);
          cit.updateBless(item);
          cit.updateItemhppotion(item);
        } catch (Exception e) {
          e.printStackTrace();
        } 
      } 
      i++;
    } 
  }
  
  private static void getData() {
    Connection con = null;
    try {
      con = DatabaseFactory.get().getConnection();
      Statement stat = con.createStatement();
      ResultSet rs = stat.executeQuery("SELECT * FROM w_物品祝福系统");
      ArrayList<Object> aReturn = null;
      if (rs != null)
        while (rs.next()) {
          aReturn = new ArrayList();
          aReturn.add(0, new Integer(rs.getInt("item_type")));
          aReturn.add(1, new Integer(rs.getInt("Attack")));
          aReturn.add(2, new Integer(rs.getInt("Hit")));
          aReturn.add(3, new Integer(rs.getInt("Sp")));
          aReturn.add(4, new Integer(rs.getInt("Str")));
          aReturn.add(5, new Integer(rs.getInt("Dex")));
          aReturn.add(6, new Integer(rs.getInt("Int")));
          aReturn.add(7, new Integer(rs.getInt("Con")));
          aReturn.add(8, new Integer(rs.getInt("Wis")));
          aReturn.add(9, new Integer(rs.getInt("Cha")));
          aReturn.add(10, new Integer(rs.getInt("Hp")));
          aReturn.add(11, new Integer(rs.getInt("Mp")));
          aReturn.add(12, new Integer(rs.getInt("Mr")));
          aReturn.add(13, new Integer(rs.getInt("ReductionDmg")));
          aReturn.add(14, new Integer(rs.getInt("Hpr")));
          aReturn.add(15, new Integer(rs.getInt("Mpr")));
          aReturn.add(16, new Integer(rs.getInt("hppotion")));
          aReturn.add(17, new Integer(rs.getInt("type")));
          aReturn.add(18, rs.getString("All_message"));
          aReturn.add(19, new Integer(rs.getInt("ac")));
          aData.add(aReturn);
        }  
      stat.close();
      rs.close();
      if (con != null && !con.isClosed())
        con.close(); 
    } catch (SQLException sQLException) {}
  }
}
